package com.liang.bbs.user.service;

import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;

/**
 * @author maliangnansheng
 */
@SpringBootApplication
@EnableDubbo
@EnableScheduling
public class UserApplication {

    static {
        // 解决JDK 9+模块化问题的关键配置
        // 在直接运行类文件时，这些系统属性设置通常不够，需要在JVM参数中添加
        System.setProperty("sun.misc.Unsafe.allowUnsafeImplementations", "true");
        System.setProperty("dubbo.application.logger", "slf4j");
    }

    public static void main(String[] args) {
        // 重要提示：在IDE中直接运行此应用时，必须在运行配置中添加以下JVM参数：
        // --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED --add-opens java.base/java.text=ALL-UNNAMED --add-opens java.desktop/java.awt.font=ALL-UNNAMED
        
        // 或者使用我们创建的启动脚本：
        // 1. Windows命令提示符：start-user-service.bat
        // 2. PowerShell：./start-user-service.ps1
        
        // 最佳长期解决方案：降级到JDK 8运行此应用
        SpringApplication.run(UserApplication.class, args);
    }

}
